home *** CD-ROM | disk | FTP | other *** search
- {
- MICHAEL A VINCZE
-
- Below is an example I whipped up that shows how to vary the font in an edit control.
- The method can be extended to other controls as well. Two methods are presented:
- using a stock object to get a fixed font, and using a created font.
-
- I have not figured out how to get the colors to change though.
- }
-
- program Font_Ctl;
-
- uses
- Win31, WinTypes, WinProcs,
- Objects, OWindows, ODialogs;
-
- const
- ApplicationName : PChar = 'Font_Ctl';
-
- id_Edit1 = 201;
- id_Edit2 = 202;
- id_Edit3 = 203;
-
- type
- TFont_CtlApplication = object (TApplication)
- procedure InitMainWindow; virtual;
- end;
-
- PFont_CtlWindow = ^TFont_CtlWindow;
- TFont_CtlWindow = object (TWindow)
- EditBox : PEdit;
- VarFont : HFont;
- FixFont : THandle;
-
- constructor Init(AParent : PWindowsObject; ATitle : PChar);
- procedure SetupWindow; virtual;
- destructor Done; virtual;
- end;
-
- procedure TFont_CtlApplication.InitMainWindow;
- begin
- MainWindow := New(PFont_CtlWindow, Init(nil, ApplicationName));
- end;
-
- constructor TFont_CtlWindow.Init(AParent : PWindowsObject; ATitle : PChar);
- begin
- inherited Init(AParent, ATitle);
- EditBox := New(PEdit, Init (@Self, id_Edit1, 'EditBox 1 (normal)',
- 10, 10, 500, 30, $FF, False));
- EditBox := New(PEdit, Init (@Self, id_Edit2, 'EditBox 2 (fixed font)',
- 10, 50, 500, 30, $FF, False));
- EditBox := New(PEdit, Init (@Self, id_Edit3, 'EditBox 3 (variable font)',
- 10, 90, 500, 30, $FF, False));
- FixFont := GetStockObject (System_Fixed_Font);
-
- VarFont := CreateFont(20, 20, 0, 0, fw_DontCare, 0, 0, 0,
- Default_CharSet, Out_Default_Precis,
- Clip_Default_Precis, Default_Quality,
- Variable_Pitch or ff_DontCare, nil);
- end;
-
- destructor TFont_CtlWindow.Done;
- begin
- inherited Done;
- DeleteObject(VarFont);
- end;
-
- procedure TFont_CtlWindow.SetupWindow;
- begin
- inherited SetupWindow;
- SendMessage(GetDlgItem (HWindow, id_Edit2), wm_SetFont, FixFont, 1);
- SendMessage(GetDlgItem (HWindow, id_Edit3), wm_SetFont, VarFont, 1);
- end;
-
- var
- Application : TFont_CtlApplication;
-
- begin
- Application.Init (ApplicationName);
- Application.Run;
- Application.Done;
- end.